package nf.modular.modclass;

import java.awt.image.BufferedImage;
import java.io.File;

import nf.modular.ModuleHost;
import nf.modular.NFModule;
import nf.modular.NFModuleType;

public abstract class ImageAnalyzer extends NFModule
{
	public static enum ImageAnalyzerOutput
	{
		OutString,
		OutBytes,
		OutFile,
		OutIntArray,
		OutDoubleArray
	}

	public ImageAnalyzer(ModuleHost host, String scratchDir)
	{
		super(host, scratchDir);
	}

	@Override
	public NFModuleType getModuleType()
	{
		return NFModuleType.ImageAnalyzer;
	}

	public abstract ImageAnalyzerOutput getOutputType();
	
	public abstract String analyzeImageStr(BufferedImage image, String imageName);
	public abstract byte[] analyzeImageByte(BufferedImage image, String imageName);
	public abstract File analyzeImageFile(BufferedImage image, String imageName);
	public abstract int[] analyzeImageInt(BufferedImage image, String imageName);
	public abstract double[] analyzeImageDouble(BufferedImage image, String imageName);
}
